package com.sylli.oeuf.server.game.logic.action;

import com.sylli.oeuf.server.game.logic.ActionProduct;
import com.sylli.oeuf.server.game.logic.BattleActor;
import com.sylli.oeuf.server.game.logic.EventParameter;

public abstract class ActionValue extends ActionProduct implements EventParameter {

	public enum ActionValueFlag {Critical, Normal};
	
	public enum ActionValueElement {Physical, Holy, Shadow, Fire, Frost, Arcane, Chaos};
	
	protected ActionValueFlag flag;
	
	protected ActionValueElement element;
	
	protected int value;

	public ActionValue(BattleActor source, BattleActor target, int value, ActionValueFlag flag, ActionValueElement element) {
		super(source, target);
		this.value = value;
		this.flag = flag;
		this.element = element;
	}
	
	public ActionValueFlag getFlag() {
		return flag;
	}

	public void setFlag(ActionValueFlag flag) {
		this.flag = flag;
	}

	public ActionValueElement getElement() {
		return element;
	}

	public void setElement(ActionValueElement element) {
		this.element = element;
	}

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}
	
}
